package com.isp.common.web.annotation;


import com.isp.common.model.warning.WarningMethod;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 接口预警
 *
 * @author linsy
 * @created 2024/07.31
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface ApiLog {

    /**
     * 是否预警
     * 暂未实现
     *
     * @return 是否预警
     */
    boolean isWarning() default false;

    /**
     * 预警通知的方式
     *
     * @return 方式
     */
    WarningMethod method() default WarningMethod.IMMEDIACY;

    /**
     * 异常间隔时间
     * 方式为[CUSTOMIZE]生效
     *
     * @return 默认3秒
     */
    int second() default 3;

    /**
     * 异常次数
     * 方式为[CUSTOMIZE]生效
     *
     * @return 默认3次
     */
    int frequency() default 3;
}